home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- class HeaderParser {
- String raw;
- String[][] tab;
-
- public HeaderParser(String var1) {
- this.raw = var1;
- this.tab = new String[10][2];
- this.parse();
- }
-
- public int findInt(String var1, int var2) {
- try {
- return Integer.parseInt(this.findValue(var1, String.valueOf(var2)));
- } catch (Throwable var3) {
- return var2;
- }
- }
-
- public String findKey(int var1) {
- return var1 >= 0 && var1 <= 10 ? this.tab[var1][0] : null;
- }
-
- public String findValue(int var1) {
- return var1 >= 0 && var1 <= 10 ? this.tab[var1][1] : null;
- }
-
- public String findValue(String var1) {
- return this.findValue(var1, (String)null);
- }
-
- public String findValue(String var1, String var2) {
- if (var1 == null) {
- return var2;
- } else {
- var1.toLowerCase();
-
- for(int var3 = 0; var3 < 10; ++var3) {
- if (this.tab[var3][0] == null) {
- return var2;
- }
-
- if (var1.equals(this.tab[var3][0])) {
- return this.tab[var3][1];
- }
- }
-
- return var2;
- }
- }
-
- private void parse() {
- if (this.raw != null) {
- this.raw = this.raw.trim();
- char[] var1 = this.raw.toCharArray();
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
- boolean var5 = true;
- boolean var6 = false;
- int var7 = var1.length;
-
- while(var3 < var7) {
- char var8 = var1[var3];
- if (var8 == '=') {
- this.tab[var4][0] = (new String(var1, var2, var3 - var2)).toLowerCase();
- var5 = false;
- ++var3;
- var2 = var3;
- } else if (var8 == '"') {
- if (!var6) {
- var6 = true;
- ++var3;
- var2 = var3;
- } else {
- this.tab[var4++][1] = new String(var1, var2, var3 - var2);
- var6 = false;
-
- do {
- ++var3;
- } while(var3 < var7 && (var1[var3] == ' ' || var1[var3] == ','));
-
- var5 = true;
- var2 = var3;
- }
- } else if (var8 != ' ' && var8 != ',') {
- ++var3;
- } else if (var6) {
- ++var3;
- } else {
- if (var5) {
- this.tab[var4++][0] = (new String(var1, var2, var3 - var2)).toLowerCase();
- } else {
- this.tab[var4++][1] = new String(var1, var2, var3 - var2);
- }
-
- while(var3 < var7 && (var1[var3] == ' ' || var1[var3] == ',')) {
- ++var3;
- }
-
- var5 = true;
- var2 = var3;
- }
- }
-
- --var3;
- if (var3 > var2) {
- if (!var5) {
- if (var1[var3] == '"') {
- this.tab[var4++][1] = new String(var1, var2, var3 - var2);
- } else {
- this.tab[var4++][1] = new String(var1, var2, var3 - var2 + 1);
- }
- } else {
- this.tab[var4][0] = (new String(var1, var2, var3 - var2 + 1)).toLowerCase();
- }
- } else if (var3 == var2) {
- if (!var5) {
- if (var1[var3] == '"') {
- this.tab[var4++][1] = String.valueOf(var1[var3 - 1]);
- } else {
- this.tab[var4++][1] = String.valueOf(var1[var3]);
- }
- } else {
- this.tab[var4][0] = String.valueOf(var1[var3]).toLowerCase();
- }
- }
- }
-
- }
- }
-